Функции
- Подпрограмма - отдельно вызываемая часть программы для выполнения какой-то подзадачи
- Процедура - подпрограмма, выполняющая действия
- Функция - подпрограмма, вычисляющая значение
- Метод - подпрограмма, связанная с классом или объектом.
/*
modifiers return_type name (par_type par_name) {}
*/
- Аргументы передаются в метод по значению
- Вызывающий метод кладет в стек копии значений аргументов
- Внутри метода эти значения доступны по именам параметров
- Если параметр примитивного типа, передается копия значения
- Если параметр ссылочного типа, передается копия ссылки.
- Объект при этом - в куче. Ссылку изменить нельзя, но объект иногда можно
- Если метод не должен возвращать значение, то тип возвращаемого значения - void
- Если метод должен возвращать значение определенного типа, то последней инструкцией метода должен быть возврат значения заданного типа с помощью return
- Для параметров и возвращаемых значений действуют правила приведения типов
Сигнатура
имя функции и параметры образуют сигнатуру
В сигнатуру НЕ входят: модификаторы, имена параметров, тип возвращаемого значения, тип выбрасываемого исключения
Локальные переменные и var
- Локальные переменные - объявленные внутри блоки или метода
- var можно использовать для локальных переменных, которые сразу инициализируются
- var нельзя использовать для массивов
- var нельзя использовать для параметров метода и задания типа возвращаемого значения в заголовке метода
- Тип переменной выводится компилятором из ее значения
Переменное число аргументов - varargs
void m(int a, int... x) {
}
// m(0)
// m(0, 1, 2)
// m(0, new int[]{})